Methods, systems, and media for pairing devices to complete a task using an application request

ABSTRACT

Methods, systems, and media for pairing devices for completing tasks are provided. In some embodiments, the method comprises: identifying, at a first user device, an indication of a task to be completed; transmitting, by the first user device to a server, information indicating the task to be completed and identifying information corresponding to the first user device; determining whether a predetermined duration of time has elapsed; in response to determining that the predetermined duration of time has elapsed, transmitting, from the first user device to the server, a request to determine whether the task has been completed by a second user device; and in response to receiving, from the server, an indication that the task has been completed by the second user device, retrieving data corresponding to the task from the server.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No.15/588,386, filed May 5, 2017, which is a continuation-in-part of U.S.patent application Ser. 15/291,023, filed Oct. 11, 2016, each of whichis hereby incorporated by reference herein in its entirety.

TECHNICAL FIELD

The disclosed subject matter relates to methods, systems, and media forpairing devices to complete a task using an application request.

BACKGROUND

Users often want to complete tasks or perform actions such as taking apicture or signing a form on their user devices. Some tasks or actionsmay require particular hardware, such as a camera or touchpad that maynot be available on the device the user is currently using (e.g., adesktop computer), and a different user device (e.g., a mobile phone)may be needed to complete the task or action. However, it can bedifficult to pair two devices to complete the task or action.

Accordingly, it is desirable to provide new methods, systems, and mediafor pairing devices to complete a task using an application request.

SUMMARY

Methods, systems, and media for pairing devices to complete tasks areprovided. In accordance with some embodiments of the disclosed subjectmatter, methods for pairing devices to complete tasks are provided, themethods comprising: identifying, at a first user device, an indicationof a task to be completed; transmitting, by the first user device to aserver, information indicating the task to be completed and identifyinginformation corresponding to the first user device; determining whethera predetermined duration of time has elapsed; in response to determiningthat the predetermined duration of time has elapsed, transmitting, fromthe first user device to the server, a request to determine whether thetask has been completed by a second user device; and in response toreceiving, from the server, an indication that the task has beencompleted by the second user device, retrieving data corresponding tothe task from the server.

In accordance with some embodiments of the disclosed subject matter,systems for pairing devices for completing tasks are provided, thesystems comprising: a hardware processor that is programmed to identify,at a first user device, an indication of a task to be completed;transmit, by the first user device to a server, information indicatingthe task to be completed and identifying information corresponding tothe first user device; determine whether a predetermined duration oftime has elapsed; in response to determining that the predeterminedduration of time has elapsed, transmit, from the first user device tothe server, a request to determine whether the task has been completedby a second user device; and in response to receiving, from the server,an indication that the task has been completed by the second userdevice, retrieve data corresponding to the task from the server.

In accordance with some embodiments of the disclosed subject matter,non-transitory computer-readable media containing computer-executableinstructions that, when executed by a processor, cause the processor toperform a method for pairing devices for completing tasks are provided,the method comprising: identifying, at a first user device, anindication of a task to be completed; transmitting, by the first userdevice to a server, information indicating the task to be completed andidentifying information corresponding to the first user device;determining whether a predetermined duration of time has elapsed; inresponse to determining that the predetermined duration of time haselapsed, transmitting, from the first user device to the server, arequest to determine whether the task has been completed by a seconduser device; and in response to receiving, from the server, anindication that the task has been completed by the second user device,retrieving data corresponding to the task from the server.

BRIEF DESCRIPTION OF THE DRAWINGS

Various objects, features, and advantages of the disclosed subjectmatter can be more fully appreciated with reference to the followingdetailed description of the disclosed subject matter when considered inconnection with the following drawings, in which like reference numeralsidentify like elements.

FIG. 1 shows a schematic diagram of an example of a system for pairingdevices to complete tasks in accordance with some embodiments of thedisclosed subject matter.

FIG. 2 shows an example of hardware that can be used in a server and/ora user device in accordance with some embodiments of the disclosedsubject matter.

FIG. 3 shows an example of a process for generating a task request andretrieving task data in accordance with some embodiments of thedisclosed subject matter.

FIG. 4 shows an example of a process for retrieving a task request andtransmitting task data in accordance with some embodiments of thedisclosed subject matter.

DETAILED DESCRIPTION

In accordance with various embodiments, mechanisms (which can includemethods, systems, and media) for pairing devices to complete a taskusing an application request are provided.

In some embodiments, the mechanisms described herein can allow a user tocomplete a task or action requested by an application executing on afirst user device using a second user device. For example, in someembodiments, the task or action can include taking a photo or videousing a camera associated with the second user device, receiving inputvia a touchscreen associated with the second user device, receivingaudio data from a microphone associated with the second user device,and/or performing any other suitable task or action. In someembodiments, the mechanisms can cause the first user device to transmitan application task request to a database server that indicates the taskor action to be performed by the second user device. The mechanisms cancause the second user device to query the database server to identifythe pending application task request, and, in response to identifyingthe pending application task request, complete the task or action andupload any data collected while performing the task or action to thedatabase server. The mechanisms can cause the first user device toperiodically (e.g., every ten milliseconds, every one hundredmilliseconds, and/or at any other suitable frequency) query the databaseserver to determine if the task has been completed by the second userdevice, and, if the task has been completed, retrieve the data collectedby the second user device.

Note that, in some embodiments, the first user device and the seconduser device can both be executing an application that requests the taskor action. In some such embodiments, the application can beauthenticated on both the first user device and the second user devicewith a user account associated with a user of the first user device andthe second user device. In some embodiments, a username associated withthe user account or any other suitable user identifying information canbe used by the database server to store a received application taskrequest from the first user device, identify pending application taskrequests for the second user device, and store data collected by thesecond user device in connection with the application task request.

Turning to FIG. 1, an example 100 of hardware for pairing devices tocomplete tasks in accordance with some embodiments of the disclosedsubject matter is shown. As illustrated, hardware 100 can include adatabase server 102, a communication network 104, user devices 106-110,and network routers 112 and 114.

Database server 102 can be any suitable server for storing informationand/or data associated with an application (e.g., an application thatexecutes on a mobile device, an application that executes on a laptopcomputer or a desktop computer, and/or any other suitable application).For example, in some embodiments, database server 102 can be a serverthat receives task requests from user device 106 and receives a queryfor pending task requests from user devices 108 and/or 110. As anotherexample, in some embodiments, database server 102 can receive and storedata associated with a completed task, such as a photo, a signature,and/or any other suitable data, as described below in connection withFIG. 4.

Communication network 104 can be any suitable combination of one or morewired and/or wireless networks in some embodiments. For example,communication network 104 can include any one or more of the Internet, amobile data network, a satellite network, a local area network, a widearea network, a telephone network, a cable television network, a WiFinetwork, a WiMax network, and/or any other suitable communicationnetwork.

User devices 106, 108, and/or 110 can be any suitable user devices forexecuting applications, transmitting task requests, performing arequested task, and/or performing any other suitable functions. In someembodiments, user devices 106, 108, and/or 110 can include mobiledevices (e.g., a mobile phone, a laptop computer, a wearable computer,and/or any other suitable mobile device) and/or non-mobile devices(e.g., a desktop computer, a smart television, and/or any other suitablenon-mobile devices). In some embodiments, user devices 106, 108, and/or110 can be local to each other or remote from each other. For example,as shown in FIG. 1, in some embodiments, user devices 106 and 108 can belocal to each other and connected to communication network 104 through anetwork router 112. As another example, as shown in FIG. 1, in someembodiments, user device 110 can be connected to communication network104 through a network router 114.

Although only one server 102 is shown in FIG. 1 to avoidover-complicating the figure, any suitable number of servers can be usedin some embodiments.

Database server 102 and user devices 106, 108, and 110 can beimplemented using any suitable hardware in some embodiments. Forexample, in some embodiments, devices 102, 106, 108, and 110 can beimplemented using any suitable general purpose computer or specialpurpose computer. For example, database server may be implemented usinga special purpose computer. Any such general purpose computer or specialpurpose computer can include any suitable hardware. For example, asillustrated in example hardware 200 of FIG. 2, such hardware can includehardware processor 202, memory and/or storage 204, an input devicecontroller 206, an input device 208, display/audio drivers 210, displayand audio output circuitry 212, communication interface(s) 214, anantenna 216, and a bus 218.

Hardware processor 202 can include any suitable hardware processor, suchas a microprocessor, a micro-controller, digital signal processor(s),dedicated logic, and/or any other suitable circuitry for controlling thefunctioning of a general purpose computer or a special purpose computerin some embodiments.

Memory and/or storage 204 can be any suitable memory and/or storage forstoring programs, data, media content, and/or any other suitableinformation in some embodiments. For example, memory and/or storage 204can include random access memory, read-only memory, flash memory, harddisk storage, optical media, and/or any other suitable memory.

Input device controller 206 can be any suitable circuitry forcontrolling and receiving input from a device, such as input device 208,in some embodiments. For example, input device controller 206 can becircuitry for receiving input from an input device 208, such as a touchscreen, from one or more buttons, from a voice recognition circuit, froma microphone, from a camera, from an optical sensor, from anaccelerometer, from a temperature sensor, from a near field sensor,and/or any other type of input device.

Display/audio drivers 210 can be any suitable circuitry for controllingand driving output to one or more display/audio output circuitries 212in some embodiments. For example, display/audio drivers 210 can becircuitry for driving an LCD display, a speaker, an LED, or any othertype of output device.

Communication interface(s) 214 can be any suitable circuitry forinterfacing with one or more communication networks, such as network 104as shown in FIG. 1. For example, interface(s) 214 can include networkinterface card circuitry, wireless communication circuitry, and/or anyother suitable type of communication network circuitry.

Antenna 216 can be any suitable one or more antennas for wirelesslycommunicating with a communication network in some embodiments. In someembodiments, antenna 216 can be omitted when not needed.

Bus 218 can be any suitable mechanism for communicating between two ormore components 202, 204, 206, 210, and 214 in some embodiments.

Any other suitable components can be included in hardware 200 inaccordance with some embodiments.

Turning to FIG. 3, an example 300 of a process for generating a taskrequest and retrieving data corresponding to the task request is shownin accordance with some embodiments of the disclosed subject matter. Insome embodiments, blocks of process 300 can be performed by a first userdevice such as user device 106 as shown in and described above inconnection with FIG. 1.

Process 300 can begin at 302. In some embodiments, process 300 can beginin response to determining that a user has opened a particularapplication on the first user device, selected a particular selectableinput or user interface control on the first user device, and/or inresponse to any other suitable action(s). As a more particular example,in some embodiments, process 300 can begin in response to determiningthat a user of the first user device has selected a user interfacecontrol to upload a picture via an application or web browser executingon the first user device. Note that, in some embodiments, a userinterface that requests permission from the user to proceed with process300 may be presented. Additionally or alternatively, in someembodiments, the user interface may present instructions for opening acorresponding application on the second user device to execute process400 of FIG. 4 (described below).

Process 300 can retrieve a user identifier at 304. For example, in someembodiments, process 300 can retrieve the user identifier from memory204 of the first user device, as shown in and described above inconnection with FIG. 2. In some embodiments, the user identifier can beany suitable identifier, such as a username associated with a user ofthe first user device, a username associated with a particularapplication executing on the first user device that was previouslystored on the first user device, and/or any other suitable useridentifier. Note that, in some embodiments, the user identifier can be aunique identifier other than a username, and can include any othersuitable user identifying data, such as a personal identification number(PIN), biometric data, and/or any other suitable type of useridentifier.

Process 300 can retrieve the Internet Protocol (IP) address associatedwith the first user device at 306. In some embodiments, the retrieved IPaddress can correspond to the IP address of the network router the firstuser device is connected to, such as network router 112 as shown in anddescribed above in connection with FIG. 1.

At 308, process 300 can use the user identifier retrieved at block 304and the IP address retrieved at block 306 to generate an applicationrequest. In some embodiments, the application request can include arequest to perform any suitable task or action, such as using a cameraof a second user device (e.g., user device 108 and/or user device 110)to take a picture, using a touchscreen of a second user device toreceive a user signature, and/or any other suitable task or action. Insome embodiments, the application request can include any suitableinformation, such as an identifier corresponding to the request, acurrent date and/or time, the IP address, the user identifier, apasscode, a request type, a request status, and/or any other suitableinformation. In some embodiments, process 300 can generate the passcodeto be a unique and/or randomized alphanumeric string corresponding tothe particular application request. In some embodiments, the requesttype can be set to be a value corresponding to a type of task or a typeof application associated with the application request. For example, anapplication request corresponding to a task to capture an image using adevice camera can have a first particular request type (e.g., “1,” “C,”“P,” “Photo,” and/or any other suitable request type), and anapplication request corresponding to a task to capture data from atouchscreen can have a different request type (e.g., “2,” “T,” “Touch,”and/or any other suitable request type). In some embodiments, process300 can set the request status to 0 at block 308. Note that, in someembodiments, the application request can additionally includeinformation indicating a second user device (e.g., a particular mobilephone, a particular tablet computer, and/or any other suitable seconduser device) that is to be used to perform the task or action.

In some embodiments, process 300 can cause the first user device to waitfor the task to be completed by a second user device for no more than apredetermined duration of time by setting a time out counter. In somesuch embodiments, process 300 can set a time out counter value M to 0 atblock 310. In some embodiments, the time out counter can be omitted.

At 312, process 300 can wait N milliseconds. In some embodiments, N canbe any suitable value (e.g., one, two, five, one hundred, one thousand,and/or any other suitable value).

Process 300 can query database server 102 (after process 300 has waitedN milliseconds at block 312) to determine an updated request status at314. For example, in some embodiments, the first user device can connectto database server 102 via a network router (e.g., network router 112)and communication network 104 to request an updated request statuscorresponding to the generated application request. Note that, in someembodiments, the request status may have been updated by a second userdevice that has completed the application request, as shown in anddescribed below in connection with FIG. 4.

At 316, process 300 can determine if the updated request status is 1,indicating that the application request has been completed by a seconduser device. Note that, although the request status is described hereinas having a value of 0 if the request has not yet been completed and avalue of 1 if the request has been completed, in some embodiments, anyother suitable values can be used to indicate the request status.

If, at 316, the request status is 1 (“yes” at 316), process 300 canretrieve data corresponding to the application request from databaseserver 102 at 318. For example, in instances where the applicationrequest corresponded to a request to capture an image or video using acamera associated with a second user device, process 300 can retrieveimage data corresponding to the captured image or video from databaseserver 102. As another example, in instances where the applicationrequest corresponding to a request to capture data from a touchscreen ofa second user device, process 300 can retrieve data indicating input onthe touchscreen of the second user device. In some embodiments, the datacan be transmitted from database server 102 to the first user device viacommunication network 104, as shown in and described above in connectionwith FIG. 1. Process 300 can then terminate at block 324.

If, at 316, the request status is not 1 (“no” at 316), process 300 canproceed to block 320 and can determine if a current value of the timeout counter (M) exceeds a predetermined threshold T. In someembodiments, T can have any suitable value (e.g., zero, one, two, five,ten, one hundred, and/or any other suitable value). In instances whereprocess 300 does not use a time out counter, block 320 can be omitted.

If, at 320, the value of the time out counter does not exceed thepredetermined threshold (“no” at 320), process 300 can increment thevalue of the time out counter (M) by 1, and can loop back to block 312,where process 300 can wait for N milliseconds before checking an updatedrequest status.

If, at 320, the value of the time out counter exceeds the predeterminedthreshold (“yes” at 320), process 300 can terminate at block 324.

Turning to FIG. 4, an example 400 of a process for retrieving anapplication request and completing a task corresponding to theapplication request is shown in accordance with some embodiments of thedisclosed subject matter. In some embodiments, blocks of process 400 canbe implemented on a user device other than a user device that transmitsthe application request. For example, as described above in connectionwith FIG. 3, a first user device, such as user device 106, can transmitthe application request, and blocks of process 400 can be performed by asecond user device, such as user device 108 and/or 110 (shown in anddescribed above in connection with FIG. 1). Note that, in someembodiments, the first user device and the second user device can beconnected to the same network router (e.g., user device 106 and userdevice 108 connected to network router 112 as shown in FIG. 1) orconnected to different network routers (e.g., user device 106 connectedto network router 112 and user device 110 connected to network router114 as shown in FIG. 1).

Process 400 can begin at 402. In some embodiments, process 400 can beginin response to any suitable action being taken on the second userdevice. For example, in some embodiments, process 400 can begin inresponse to determining that a particular application has been opened onthe second user device, and/or in response to any other suitable action.

Process 400 can retrieve a user identifier at 404. In some embodiments,the user identifier retrieved at block 404 by the second user device canbe the same as the user identifier retrieved at block 304 by the firstuser device. For example, in some embodiments, the user identifier cancorrespond to a username associated with a user account authenticated onthe application executing on the second user device. Note that, in someembodiments, the user identifier can be any type of user identifyinginformation, such as a PIN code, biometric data, and/or any othersuitable user identifier.

At 406, process 400 can retrieve the IP address associated with the userdevice executing process 400. For example, in some embodiments, the IPaddress can correspond to the network router to which the second userdevice is connected to, such as network router 112 if the user deviceuser device 108 and network router 114 if the user device is user device110.

Process 400 can receive a passcode associated with the application at408. In some embodiments, the passcode can be received in any suitablemanner, such as via a keyboard associated with the second user device, atouchscreen associated with the second user device, a microphoneassociated with the second user device, and/or in any other suitablemanner. In some embodiments, the passcode can be one that matches thepasscode generated by process 300 at block 308, as described above inconnection with FIG. 3. Note that, in some embodiments, process 400 doesnot need a passcode, and in some such instances, block 408 can beomitted.

At 410, process 400 can query database server 102 to determine if afirst user device has transmitted an application task request. In someembodiments, process 400 can transmit a request to database server 102to identify a pending application task request. For example, in someembodiments, the transmitted request can include the user identifierretrieved at block 404, the IP address retrieved at block 406, and/orthe application passcode received at block 408. In some embodiments, anysuitable combination of one or more items of information can be includedin the request. In some embodiments, the request can be transmitted viathe network router the second user device is connected to andcommunication network 104 to database server 102.

In some embodiments, database server 102 can identify a pendingapplication task request based on the information received from process400. For example, in some embodiments, database server 102 can identifya pending application task request associated with the same useridentifier (e.g., username, and/or any other suitable user identifyingdata) as included in the information received from process 400. Asanother example, in some embodiments, data server 102 can identify apending application task request associated with the same IP address asone included in the information received from process 400 (e.g., ininstances where the first user device and the second user device arelocal to each other). As yet another example, in some embodiments, dataserver 102 can identify a pending application task request associatedwith the same passcode included in the information received from process400.

At 412, process 400 can determine if there is a pending application taskrequest for the second user device to complete. Process 400 candetermine if there is a pending application task request based on anysuitable information, for example, based on a response to thetransmitted query from database server 102.

If, at 412, there is no pending application task request (“no” at 412),process 400 can terminate at block 418.

If, at 412, there is a pending application task request (“yes” at 412),process 400 can complete the task at 414. In some embodiments, process400 can determine a type of task associated with the application taskrequest, for example, based on information transmitted from databaseserver 102 in response to the query transmitted at block 410. Forexample, in some embodiments, the information can indicate that an imageis to be captured using a camera associated with the second user deviceexecuting process 400. As another example, in some embodiments, theinformation can indicate that data from a touchscreen of the second userdevice executing process 400 is to be captured. Process 400 can performthe action or task indicated in the application task request bycollecting any suitable data. Note that, in instances where the actionor task requires particular hardware associated with the second userdevice such as a camera, a touchscreen, a microphone, and/or any othersuitable hardware, process 400 can cause the hardware to beautomatically initialized or interfaced with in any suitable manner.

At 416, process 400 can transmit the collected data to database server102. The data can be transmitted in any suitable manner, for example,via communication network 104. Additionally, in some embodiments,process 400 can transmit instructions to database server 102 to set arequest status associated with the application task request to 1 (or anyother suitable value) to indicate that the task has been completed bythe second user device.

It should be understood that at least some of the above described blocksof the processes of FIGS. 3 and 4 can be executed or performed in anyorder or sequence not limited to the order and sequence shown in anddescribed in the figure. Also, some of the above blocks of the processesof FIGS. 3 and 4 can be executed or performed substantiallysimultaneously where appropriate or in parallel to reduce latency andprocessing times. Additionally or alternatively, some of the abovedescribed blocks of the processes of FIGS. 3 and 4 can be omitted.

In some implementations, any suitable computer readable media can beused for storing instructions for performing the functions and/orprocesses described herein. For example, in some implementations,computer readable media can be transitory or non-transitory. Forexample, non-transitory computer readable media can include media suchas non-transitory forms of magnetic media (such as hard disks, floppydisks, etc.), non-transitory forms of optical media (such as compactdiscs, digital video discs, Blu-ray discs, etc.), non-transitory formsof semiconductor media (such as flash memory, electrically programmableread only memory (EPROM), electrically erasable programmable read onlymemory (EEPROM), etc.), any suitable media that is not fleeting ordevoid of any semblance of permanence during transmission, and/or anysuitable tangible media. As another example, transitory computerreadable media can include signals on networks, in wires, conductors,optical fibers, circuits, any suitable media that is fleeting and devoidof any semblance of permanence during transmission, and/or any suitableintangible media.

Accordingly, methods, systems, and media for pairing devices to completea task using an application request are provided.

Although the invention has been described and illustrated in theforegoing illustrative embodiments, it is understood that the presentdisclosure has been made only by way of example, and that numerouschanges in the details of implementation of the invention can be madewithout departing from the spirit and scope of the invention, which islimited only by the claims that follow. Features of the disclosedembodiments can be combined and rearranged in various ways.

What is claimed is:
 1. A method comprising: identifying, at a first userdevice, a task to be completed; generating a passcode corresponding tothe task to be completed and required to be entered by a user of asecond user device; transmitting, by the first user device to a server:first information indicating the task to be completed; secondinformation identifying the first user device; a request identifier; andthe passcode corresponding to the task to be completed and required tobe entered by the user of the second user device, wherein the requestidentifier is different from the passcode; determining whether apredetermined duration of time has elapsed; in response to determiningthat the predetermined duration of time has elapsed, transmitting, fromthe first user device to the server, a request to determine whether thetask has been completed by the second user device; and in response toreceiving, from the server, an indication that the task has beencompleted by the second user device, retrieving data corresponding tothe task from the server.
 2. The method of claim 1, further comprisinggenerating an alphanumeric identifier that identifies the task to becompleted.
 3. The method of claim 1, further comprising transmitting, bythe first user device to the server, third information indicating anInternet Protocol (IP) address associated with the first user device. 4.The method of claim 1, wherein the second user device is local to thefirst user device.
 5. The method of claim 1, further comprising: inresponse to receiving, from the server, an indication that the task hasnot been completed by the second user device, determining whether asecond predetermined duration of time has elapsed; and in response todetermining that the second predetermined duration of time has elapsed,transmitting, from the first user device to the server, a second requestto determine whether the task has been completed by the second userdevice.
 6. The method of claim 1, wherein the retrieved data includesimage data captured by a camera associated with the second user device.7. A system comprising: a first device comprising: a memory; and ahardware processor that is coupled to the memory and that is programmedto: identify a task to be completed; generate a passcode correspondingto the task to be completed and required to be entered by a user of asecond user device; transmit to a server: first information indicatingthe task to be completed; second information identifying the first userdevice; a request identifier; and the passcode corresponding to the taskto be completed and required to be entered by the user of the seconduser device, wherein the request identifier is different from thepasscode; determine whether a predetermined duration of time haselapsed; in response to determining that the predetermined duration oftime has elapsed, transmit to the server a request to determine whetherthe task has been completed by the second user device; and in responseto receiving, from the server, an indication that the task has beencompleted by the second user device, retrieve data corresponding to thetask from the server.
 8. The system of claim 7, wherein the hardwareprocessor is further programmed to generate an alphanumeric identifierthat identifies the task to be completed.
 9. The system of claim 7,wherein the hardware processor is also programmed to transmit thirdinformation indicating an Internet Protocol (IP) address associated withthe first user device.
 10. The system of claim 7, wherein the seconduser device is local to the first user device.
 11. The system of claim7, wherein the hardware processor is further programmed to: in responseto receiving, from the server, an indication that the task has not beencompleted by the second user device, determining whether a secondpredetermined duration of time has elapsed; and in response todetermining that the second predetermined duration of time has elapsed,transmitting to the server a second request to determine whether thetask has been completed by the second user device.
 12. The system ofclaim 7, wherein the retrieved data includes image data captured by acamera associated with the second user device.
 13. A non-transitorycomputer-readable medium containing computer executable instructionsthat, when executed by a processor of a first user device, cause theprocessor to perform a method, the method comprising: identifying a taskto be completed; generating a passcode corresponding to the task to becompleted and required to be entered by a user of a second user device;transmitting to a server: first information indicating the task to becompleted; second information identifying the first user device; arequest identifier; and the passcode corresponding to the task to becompleted and required to be entered by the user of the second userdevice, wherein the request identifier is different from the passcode;determining whether a predetermined duration of time has elapsed; inresponse to determining that the predetermined duration of time haselapsed, transmitting to the server a request to determine whether thetask has been completed by the second user device; and in response toreceiving from the server an indication that the task has been completedby the second user device, retrieving data corresponding to the taskfrom the server.
 14. The non-transitory computer-readable medium ofclaim 13, wherein the method further comprises generating analphanumeric identifier that identifies the task to be completed. 15.The non-transitory computer-readable medium of claim 13, transmitting tothe server third information indicating an Internet Protocol (IP)address associated with the first user device.
 16. The non-transitorycomputer-readable medium of claim 13, wherein the second user device islocal to the first user device.
 17. The non-transitory computer-readablemedium of claim 13, wherein the method further comprises: in response toreceiving, from the server, an indication that the task has not beencompleted by the second user device, determining whether a secondpredetermined duration of time has elapsed; and in response todetermining that the second predetermined duration of time has elapsed,transmitting to the server a second request to determine whether thetask has been completed by the second user device.
 18. Thenon-transitory computer-readable medium of claim 13, wherein theretrieved data includes image data captured by a camera associated withthe second user device.